Dynamic message processing and aggregation of data in messaging

ABSTRACT

A network device (e.g., a user&#39;s mobile phone) may be used to make a telephone call to a landline telephone associated with a client device (e.g., a business&#39;s device). If the telephone call is terminated, either the network device or the client device may generate a text message to the other and establish a communication session. The client device may present a variety of options to the network device of service requests that may be completed by text message. The network device may transmit the service request and the service request may be fulfilled by the client.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/143,287 filed Jan. 7, 2021, which is a continuation of U.S. patentapplication Ser. No. 16/830,849, filed Mar. 26, 2020, which claims thebenefit of U.S. Provisional Application No. 62/825,153, filed Mar. 28,2019, all of which are incorporated herein by reference in theirentirety for all purposes.

FIELD

The present disclosure relates generally to facilitating routing ofcommunications. More specifically, techniques are provided todynamically route and process messages between disparate devices duringcommunication sessions. For example, embodiments can redirect a callerfrom a telephony environment to a text messaging environment in order toperform services with one or more clients.

BACKGROUND

Clients often use telephony systems to field phone calls from usersseeking their services. These telephony systems may allow users to speakwith a live representative of the client, or may use an interactivevoice response (IVR) system. IVR is a technology that allows a humancaller to call and communicate with a computer in a telephonyenvironment. In an IVR telephony environment, the computer typicallyoutputs prerecorded voice audio prompts that the human caller typicallyanswers using dual-tone multi-frequency signaling (DTMF) tones as inputvia a keypad of the human caller's phone. IVR telephony systems areoften used to determine why a human caller is calling so that the humancaller can be directed to a human operator that might be able to assistthe human caller. However, callers often complain that traditional IVRsystems can often waste time by forcing the caller to listen to alengthy recording reading every option of an extensive menu before thecaller can make a selection. Callers can also often be placed on holdfor long periods of time waiting to speak to a human operator, or thehuman operator may not answer the phone at all, leading to frustration.

SMS (short message service) is a text messaging service enablingtext-based communication between two mobile phone devices usingstandardized communication protocols. MMS (multimedia message service)is a messaging service enabling communication between two mobile phonedevices that can send images as well as text using standardizedcommunication protocols. Messaging services are convenient for users inthat they enable asynchronous communication, alerting users when amessage comes in without the users having to pay constant attention asthey would during a traditional audio-based telephone call.

SUMMARY

The term embodiment and like terms are intended to refer broadly to allof the subject matter of this disclosure and the claims below.Statements containing these terms should be understood not to limit thesubject matter described herein or to limit the meaning or scope of theclaims below. Embodiments of the present disclosure covered herein aredefined by the claims below, not this summary. This summary is ahigh-level overview of various aspects of the disclosure and introducessome of the concepts that are further described in the DetailedDescription section below. This summary is not intended to identify keyor essential features of the claimed subject matter, nor is it intendedto be used in isolation to determine the scope of the claimed subjectmatter. The subject matter should be understood by reference toappropriate portions of the entire specification of this disclosure, anyor all drawings and each claim.

Embodiments of the present disclosure provide technical solutions toaddress the technical challenges presented above. For example, a networkdevice (e.g., a user's mobile phone) may be used to make a telephonecall to a landline telephone associated with a client device (e.g., abusiness's device). If the telephone call is terminated, either thenetwork device or the client device may generate a text message to theother and establish a communication session. The client device maypresent a variety of options to the network device of service requeststhat may be completed by text message. The network device may transmitthe service request and the service request may be fulfilled by theclient. At some point thereafter, the client device may terminate thecommunication session and hand off the conversation to a server (e.g.,an aggregator associated with a plurality of client devices, and/or aplurality of terminal devices and agents). The server may accept queriesand natural language communications from the network device and answerthe queries as appropriate. Unlike the client device, queries made tothe server do not have to be client-specific, and may relate to aplurality of clients or any other subject unrelated to the client.

Certain embodiments of the present disclosure include acomputer-implemented method. The method may include receiving a messagefrom a network device at a client device. The message may include aplurality of routing paths. The method may include generating aselection of a routing path of the plurality of routing paths. Themethod may include establishing a two-way communication session betweenthe client device and a node of the network device. The node may bedetermined based on the selected routing path. The method may includefacilitating termination of the two-way communication session.Termination may cause the network device to transmit the selectedrouting path. The method may include receiving data related to theselected routing path. The method may include transmitting a newmessage. The new message may include an intent indicator data. When thenew message is received at a server, the server may generate a responseby using a machine-learning model to evaluating the selected routingpath and the intent indicator data. The method may include receiving theresponse to the new message. The response may include one or moresuggestions that correspond to the selected routing path and the intentindicator data. The method may include facilitating display of theresponse.

Certain embodiments of the present disclosure include a system. Thesystem may include one or more data processors; and a non-transitorycomputer-readable storage medium containing instructions which, whenexecuted on the one or more data processors, cause the one or more dataprocessors to perform the methods described above and herein.

Certain embodiments of the present disclosure include a computer-programproduct tangibly embodied in a non-transitory machine-readable storagemedium, including instructions configured to cause a data processingapparatus to perform the methods described above and herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is described in conjunction with the appendedfigures:

FIG. 1 shows a block diagram of an embodiment of a network interactionsystem;

FIG. 2 shows a block diagram of an embodiment of a network interactionsystem that includes a connection management system;

FIG. 3 shows a representation of a protocol-stack mapping of connectioncomponents' operation;

FIG. 4 represents a multi-device communication exchange system accordingto an embodiment;

FIG. 5 shows a block diagram of an embodiment of a connection managementsystem;

FIG. 6 shows a block diagram of a network environment for dynamic andautomatic message processing during communication sessions;

FIG. 7 shows a block diagram of a message environment that dynamicallyswitches between a network device, a client device, and a connectionmanagement system;

FIG. 8 is a flowchart illustrating a method of dynamic messagingprocessing; and

FIG. 9 is a flowchart illustrating a method of dynamic messagingprocessing and data aggregation in accordance with embodiments describedherein.

In the appended figures, similar components and/or features can have thesame reference label. Further, various components of the same type canbe distinguished by following the reference label by a dash and a secondlabel that distinguishes among the similar components. If only the firstreference label is used in the specification, the description isapplicable to any one of the similar components having the same firstreference label irrespective of the second reference label.

DETAILED DESCRIPTION

The ensuing description provides examples of embodiment(s) only and isnot intended to limit the scope, applicability or configuration of thedisclosure. Rather, the ensuing description of the examples ofembodiment(s) will provide those skilled in the art with an enablingdescription for implementing examples of embodiment. It is understoodthat various changes can be made in the function and arrangement ofelements without departing from the spirit and scope as set forth in theappended claims.

FIG. 1 shows a block diagram of an embodiment of a network interactionsystem which implements and supports certain embodiments and featuresdescribed herein. Certain embodiments relate to establishing aconnection channel between a network device 105 (which can be operatedby a user 110) and a client device 130 associated with a client 125. Incertain embodiments, the network interaction system can include aterminal device 115 (which can be operated by an agent 120).

In certain embodiments, a user 110 can be an individual attempting tocontact a client 125 via telephonic device 132. A client 125 can be anentity that provides, operates, or runs a service, or individualsemployed by or assigned by such an entity to perform the tasks availableto a client 125 as described herein. The agent 120 can be an individual,such as a support agent tasked with providing support or information tothe user 110 regarding the service. Out of a large number of agents, asubset of agents may be appropriate for providing support or informationfor a particular client 125. The agent 120 may be affiliated or notaffiliated with the client 125. Each agent can be associated with one ormore clients 125. In some non-limiting examples, a user 110 can be anindividual attempting to book an appointment via a cell phone, a client125 can be a company that provides medical services, and an agent 120can be a representative employed by the company. In various embodiments,the user 110, client 125, and agent 120 can be other individuals orentities.

While FIG. 1 shows only a single network device 105, terminal device 115and client device 130 coupled to a database 127, an interaction systemcan include multiple or many (e.g., tens, hundreds or thousands) of eachof one or more of these types of devices. In various implementations,different nodes of an interaction system can include repeated copies ofclient device 130, telephonic device 132, and other devices coupled toone or more shared database(s) 127 for client 125. Similarly, while FIG.1 shows only a single user 110, agent 120 and client 125, an interactionsystem of FIG. 1 can include multiple or many of each of one or more ofsuch entities. Thus, it may be necessary to determine which terminaldevice is to be selected to communicate with a given network device.Further complicating matters, a remote server 140 may also be configuredto receive and respond to select network-device communications.

A connection management system 150 can facilitate strategic routing ofcommunications. A communication can include a message with content(e.g., defined based on input from an entity, such as typed or spokeninput). The communication can also include additional data, such as dataabout a transmitting device (e.g., an IP address, account identifier,device type and/or operating system); a destination address; anidentifier of a client; an identifier of a webpage or webpage element(e.g., a webpage or webpage element being visited when the communicationwas generated or otherwise associated with the communication) or onlinehistory data; a time (e.g., time of day and/or date); and/or destinationaddress. Other information can be included in the communication. In someinstances, connection management system 150 routes the entirecommunication to another device. In some instances, connectionmanagement system 150 modifies the communication or generates a newcommunication (e.g., based on the initial communication). The new ormodified communication can include the message (or processed versionthereof), at least some (or all) of the additional data (e.g., about thetransmitting device, webpage or online history and/or time) and/or otherdata identified by connection management system 150 (e.g., account dataassociated with a particular account identifier or device). The new ormodified communication can include other information as well.

Part of strategic-routing facilitation can include establishing,updating and using one or more connection channels between networkdevice 105 and one or more terminal devices 115. For example, uponreceiving a communication from network device 105, connection managementsystem 150 can first estimate to which client (if any) the communicationcorresponds. Upon identifying a client, connection management system 150can identify a terminal device 115 associated with the client forcommunication with network device 105. In some instances, theidentification can include evaluating a profile of each of a pluralityof agents (or experts or delegates), each agent (e.g., agent 120) in theplurality of agents being associated with a terminal device (e.g.,terminal device 115). The evaluation can relate to a content in anetwork-device message.

In some instances, connection management system 150 can determinewhether any connection channels are established between network device105 and a terminal device associated with the client (or remote server140) and, if so, whether such channel is to be used to exchange a seriesof communications including the communication.

Upon selecting a terminal device 115 to communicate with network device105, connection management system 150 can establish a connection channelbetween the network device 105 and terminal device 115. In someinstances, connection management system 150 can transmit a message tothe selected terminal device 115. The message may request an acceptanceof a proposed assignment to communicate with a network device 105 oridentify that such an assignment has been generated. The message caninclude information about network device 105 (e.g., IP address, devicetype, and/or operating system), information about an associated user 110(e.g., language spoken, duration of having interacted with client, skilllevel, sentiment, and/or topic preferences), a received communication,code (e.g., a clickable hyperlink) for generating and transmitting acommunication to the network device 105, and/or an instruction togenerate and transmit a communication to network device 105.

In one instance, communications between network device 105 and terminaldevice 115 can be routed through connection management system 150. Sucha configuration can allow connection management system 150 to monitorthe communication exchange and to detect issues (e.g., as defined basedon rules) such as non-responsiveness of either device or extendedlatency. Further, such a configuration can facilitate selective orcomplete storage of communications, which may later be used, forexample, to assess a quality of a communication exchange and/or tosupport learning to update or generate routing rules so as to promoteparticular post-communication targets.

In some embodiments, connection management system 150 can monitor thecommunication exchange in real-time and perform automated actions (e.g.,rule-based actions) based on the live communications. For example, whenconnection management system 150 determines that a communication relatesto a particular item (e.g., product), connection management system 150can automatically transmit an additional message to terminal device 115containing additional information about the item (e.g., quantity of itemavailable, links to support documents related to the item, or otherinformation about the item or similar items).

In one instance, a designated terminal device 115 can communicate withnetwork device 105 without relaying communications through connectionmanagement system 150. One or both devices 105, 115 may (or may not)report particular communication metrics or content to connectionmanagement system 150 to facilitate communication monitoring and/or datastorage.

As mentioned, connection management system 150 may route selectcommunications to a remote server 140. Remote server 140 can beconfigured to provide information in a predetermined manner. Forexample, remote server 140 may access defined one or more text passages,voice recording and/or files to transmit in response to a communication.Remote server 140 may select a particular text passage, recording orfile based on, for example, an analysis of a received communication(e.g., a semantic or mapping analysis).

Routing and/or other determinations or processing performed atconnection management system 150 can be performed based on rules and/ordata at least partly defined by or provided by one or more clientdevices 130. For example, client device 130 may transmit a communicationthat identifies a prioritization of agents, terminal-device types,and/or topic/skill matching. As another example, client device 130 mayidentify one or more weights to apply to various variables potentiallyimpacting routing determinations (e.g., language compatibility,predicted response time, device type and capabilities, and/orterminal-device load balancing). It will be appreciated that whichterminal devices and/or agents are to be associated with a client may bedynamic. Communications from client device 130 and/or terminal devices115 may provide information indicating that a given terminal deviceand/or agent is to be added or removed as one associated with a client.For example, client device 130 can transmit a communication with IPaddress and an indication as to whether a terminal device with theaddress is to be added or removed from a list identifyingclient-associated terminal devices.

Each communication (e.g., between devices, between a device andconnection management system 150, between remote server 140 andconnection management system 150 or between remote server 140 and adevice) can occur over one or more networks 170. Any combination of openor closed networks can be included in the one or more networks 170.Examples of suitable networks include the Internet, a personal areanetwork, a local area network (LAN), a wide area network (WAN), or awireless local area network (WLAN). Other networks may be suitable aswell. The one or more networks 170 can be incorporated entirely withinor can include an intranet, an extranet, or a combination thereof. Insome instances, a network in the one or more networks 170 includes ashort-range communication channel, such as a Bluetooth or a BluetoothLow Energy channel. In one embodiment, communications between two ormore systems and/or devices can be achieved by a secure communicationsprotocol, such as secure sockets layer (SSL) or transport layer security(TLS). In addition, data and/or transactional details may be encryptedbased on any convenient, known, or to be developed manner, such as, butnot limited to, Data Encryption Standard (DES), Triple DES,Rivest-Shamir-Adleman encryption (RSA), Blowfish encryption, AdvancedEncryption Standard (AES), CAST-128, CAST-256, Decorrelated Fast Cipher(DFC), Tiny Encryption Algorithm (TEA), eXtended TEA (XTEA), CorrectedBlock TEA (XXTEA), and/or RC5, etc.

A network device 105, terminal device 115 and/or client device 130 caninclude, for example, a portable electronic device (e.g., a smart phone,tablet, laptop computer, or smart wearable device) or a non-portableelectronic device (e.g., one or more desktop computers, smartappliances, servers, and/or processors). Connection management system150 can be separately housed from network, terminal and client devicesor may be part of one or more such devices (e.g., via installation of anapplication on a device). Remote server 140 may be separately housedfrom each device and connection management system 150 and/or may be partof another device or system. While each device, server and system inFIG. 1 is shown as a single device, it will be appreciated that multipledevices may instead be used. For example, a set of network devices canbe used to transmit various communications from a single user, or remoteserver 140 may include a server stack.

A software agent or application may be installed on and/or executable ona depicted device, system or server. In one instance, the software agentor application is configured such that various depicted elements can actin complementary manners. For example, a software agent on a device canbe configured to collect and transmit data about device usage to aseparate connection management system, and a software application on theseparate connection management system can be configured to receive andprocess the data.

FIG. 2 shows a block diagram of another embodiment of a networkinteraction system. Generally, FIG. 2 illustrates a variety ofcomponents configured and arranged to enable a network device 205 tocommunicate with one or more terminal devices 215 via networkconnections such as router 207 and wide area network 270. The depictedinstance includes nine terminal devices 215 included in three local-areanetworks 235.

In some instances, a communication from network device 205 includesdestination data (e.g., a destination IP address) that at least partlyor entirely indicates which terminal device is to receive thecommunication. A network interaction system such as the system describedin FIG. 2 can include one or more inter-network connection components245 that can process the destination data and facilitate appropriaterouting.

Each inter-network connection components 245 can be connected to aplurality of networks 235 and can have multiple network cards installed(e.g., each card connected to a different network). For example, aninter-network connection component 245 can be connected to a wide-areanetwork 270 (e.g., the Internet) and one or more local-area networks235. In the depicted instance, in order for a communication to betransmitted from network device 205 to any of the terminal devices, inthe depicted system, the communication is handled by multipleinter-network connection components 245. Similarly, communications withclient device 230 via router 233 are also handled by inter-networkconnection components 245.

When an inter-network connection component 245 receives a communication(or a set of packets corresponding to the communication), inter-networkconnection component 245 can determine at least part of a route to passthe communication to a network associated with a destination. The routecan be determined using, for example, a routing table (e.g., stored atthe router), which can include one or more routes that are pre-defined,generated based on an incoming message (e.g., from another router orfrom another device) or learned.

Examples of inter-network connection components 245 include a router 260and a gateway 265. An inter-network connection component 245 (e.g.,gateway 265) may be configured to convert between network systems orprotocols. For example, gateway 265 may facilitate communication betweenTransmission Control Protocol/Internet Protocol (TCP/IP) andInternetwork Packet Exchange/Sequenced Packet Exchange (IPX/SPX)devices.

Upon receiving a communication at a local-area network 235, furtherrouting may still be performed. Such intra-network routing can beperformed via an intra-network connection component 245, such as aswitch 280 or hub 285. Each intra-network connection component 245 canbe connected to (e.g., wirelessly or wired, such as via an Ethernetcable) multiple terminal devices 215. Hub 285 can be configured torepeat all received communications to each device to which it isconnected. Each terminal device can then evaluate each communication todetermine whether the terminal device is the destination device orwhether the communication is to be ignored. Switch 280 can be configuredto selectively direct communications to only the destination terminaldevice.

In some instances, a local-area network 235 can be divided into multiplesegments, each of which can be associated with independent firewalls,security rules and network protocols. An intra-network connectioncomponent 245 can be provided in each of one, more or all segments tofacilitate intra-segment routing. A bridge 290 can be configured toroute communications across segments 275.

To appropriately route communications across or within networks, variouscomponents analyze destination data in the communications. For example,such data can indicate which network a communication is to be routed to,which device within a network a communication is to be routed to orwhich communications a terminal device is to process (versus ignore).However, in some instances, it is not immediately apparent whichterminal device (or even which network) is to participate in acommunication from a network device.

To illustrate, a set of terminal devices may be configured so as toprovide similar types of responsive communications. Thus, it may beexpected that a query in a communication from a network device may beresponded to in similar manners regardless to which network device thecommunication is routed. While this assumption may be true at a highlevel, various details pertaining to terminal devices can give rise toparticular routings being advantageous as compared to others. Forexample, terminal devices in the set may differ from each other withrespect to (for example) which communication channels are supported,geographic and/or network proximity to a network device and/orcharacteristics of associated agents (e.g., knowledge bases, experience,languages spoken, availability, general personality or sentiment, etc.).Accordingly, select routings may facilitate faster responses that moreaccurately and/or completely respond to a network-device communication.A complication is that static routings mapping network devices toterminal devices may fail to account for variations in communicationtopics, channel types, agent availability, and so on.

In FIG. 2 , connection management system 250 can be configured to serveas a relay and/or destination address. Thus, for example, a set ofnetwork devices 205 may transmit communications, each identifyingconnection management system 250 as a destination. Connection managementsystem 250 can receive each communication and can concurrently monitor aset of terminal devices (e.g., so as to generate metrics for eachterminal device). Based on the monitoring and a rule, connectionmanagement system 250 can identify a terminal device 215 to which it mayrelay each communication. Depending on the embodiment, terminal devicecommunications may similarly be directed to a consistent destination(e.g., of connection management system 250) for further relaying, orterminal devices may begin communicating directly with correspondingnetwork devices. These embodiments can facilitate efficient routing andthorough communication monitoring.

It will be appreciated that many variations of FIG. 2 are contemplated.For example, connection management system 250 may be associated with aconnection component (e.g., inter-network connection component 245 orintra-network connection component 245) such that an applicationcorresponding to connection management system 250 (or part thereof) isinstalled on the component. The application may, for example, performindependently or by communicating with one or more similar orcomplementary applications (e.g., executing on one or more othercomponents, network devices or remotes servers).

FIG. 3 shows a representation of a protocol-stack mapping of connectioncomponents' operation. More specifically, FIG. 3 identifies a layer ofoperation in an Open Systems Interaction (OSI) model that corresponds tovarious connection components.

The OSI model can include multiple logical layers 302-314. The layersare arranged in an ordered stack, such that layers 302-312 each serve ahigher level and layers 304-314 is each served by a lower layer. The OSImodel includes a physical layer 302. Physical layer 302 can defineparameters physical communication (e.g., electrical, optical, orelectromagnetic). Physical layer 302 also defines connection managementprotocols, such as protocols to establish and close connections.Physical layer 302 can further define a flow-control protocol and atransmission mode.

A link layer 304 can manage node-to-node communications. Link layer 304can detect and correct errors (e.g., transmission errors in the physicallayer 302) and manage access permissions. Link layer 304 can include amedia access control (MAC) layer and logical link control (LLC) layer.

A network layer 306 can coordinate transferring data (e.g., of variablelength) across nodes in a same network (e.g., as datagrams). Networklayer 306 can convert a logical network address to a physical machineaddress.

A transport layer 308 can manage transmission and receipt quality.Transport layer 308 can provide a protocol for transferring data, suchas a Transmission Control Protocol (TCP). Transport layer 308 canperform segmentation/desegmentation of data packets for transmission andcan detect and account for transmission errors occurring in layers302-306. A session layer 310 can initiate, maintain and terminateconnections between local and remote applications. Sessions may be usedas part of remote-procedure interactions. A presentation layer 312 canencrypt, decrypt and format data based on data types known to beaccepted by an application or network layer.

An application layer 314 can interact with software applications thatcontrol or manage communications. Via such applications, applicationlayer 314 can (for example) identify destinations, local resource statesor availability and/or communication content or formatting. Variouslayers 302-314 can perform other functions as available and applicable.

Intra-network connection components 322, 324 are shown to operate inphysical layer 302 and link layer 304. More specifically, a hub canoperate in the physical layer, such that operations can be controlledwith respect to receipts and transmissions of communications. Becausehubs lack the ability to address communications or filter data, theypossess little to no capability to operate in higher levels. Switches,meanwhile, can operate in a link layer, as they are capable of filteringcommunication frames based on addresses (e.g., MAC addresses).

Meanwhile, inter-network connection components 326, 328 are shown tooperate on higher levels (e.g., layers 306-314). For example, routerscan filter communication data packets based on addresses (e.g., IPaddresses). Routers can forward packets to particular ports based on theaddress, so as to direct the packets to an appropriate network. Gatewayscan operate at the network layer and above, perform similar filteringand directing and further translation of data (e.g., across protocols orarchitectures).

A connection management system 350 can interact with and/or operate on,in various embodiments, one, more, all or any of the various layers. Forexample, connection management system 350 can interact with a hub so asto dynamically adjust which terminal devices or client devices the hubcommunicates. As another example, connection management system 350 cancommunicate with a bridge, switch, router or gateway so as to influencewhich terminal device the component selects as a destination (e.g., MAC,logical or physical) address. By way of further examples, a connectionmanagement system 350 can monitor, control, or direct segmentation ofdata packets on transport layer 308, session duration on session layer310, and/or encryption and/or compression on presentation layer 312. Insome embodiments, connection management system 350 can interact withvarious layers by exchanging communications with (e.g., sending commandsto) equipment operating on a particular layer (e.g., a switch operatingon link layer 304), by routing or modifying existing communications(e.g., between a network device and a client device) in a particularmanner, and/or by generating new communications containing particularinformation (e.g., new destination addresses) based on the existingcommunication. Thus, connection management system 350 can influencecommunication routing and channel establishment (or maintenance ortermination) via interaction with a variety of devices and/or viainfluencing operating at a variety of protocol-stack layers.

FIG. 4 represents a multi-device communication exchange system accordingto an embodiment. The system includes a network device 405 configured tocommunicate with a variety of types of terminal devices and clientdevices over a variety of types of communication channels.

In the depicted instance, network device 405 can transmit a telephonicor text message communication over a cellular network (e.g., via a basestation 410). The communication can be routed to a client location 423or a terminal location 443. A connection management system 430 receivesthe communication and identifies which client device or terminal deviceis to respond to the communication. Such determination can depend onidentifying a client to which that communication pertains (e.g., basedon a content analysis or user input indicative of the client) anddetermining one or more metrics for each of one or more terminal devicesassociated with the client. For example, in FIG. 4 , each cluster ofterminal devices 440A, 440B, and 440C can correspond to a differentclient or to different nodes for a particular client (e.g. nodes focusedon different topics, response types, or associated with a particularrouting path or parts of a routing path). The terminal devices may begeographically co-located or disperse. The metrics may be determinedbased on stored or learned data and/or real-time monitoring (e.g., basedon availability).

Connection management system 430 can communicate with various terminaldevices and client devices and other components via one or more routers435 or other inter-network or intra-network connection components.Connection management system 430 may collect, analyze and/or store datafrom or pertaining to communications, terminal-device operations, clientrules, and/or user-associated actions (e.g., online activity) at one ormore data stores. Such data may influence communication routing.

For example, machine learning models can use previous data and resultsof routing from prior operations to improve selection of future routing.This can be done with any combination of supervised learning withconstructed data sets and historical data, unsupervised learning basedon expectation or projection models for current routing paths in asystem and system use targets, Any such data can be used in operationsfor natural language processing (e.g. natural language understanding,natural language inference, etc.) to generate natural language data orto update machine learning models. Such data can then be used by theclient systems or shared with applications running on a network deviceor on a server to improve dynamic message processing (e.g. improvedintent indicator data results or response message generation).

Client device 415 may also be connected to a telephonic device 425associated with a client location. The telephonic device 425 may be alandline phone associated with a telephone number in some embodiments.Network device 405 may have the capability to generate and transmit atext (e.g., SMS) message to the telephone number associated with thetelephonic device 425, which may be routed to the client device 415 insome embodiments. The client device 415 may be capable of receiving andprocessing text messages. In order to process received text messagesfrom network device 405, client device 415 may be coupled to a server420. Server 420 may receive and respond to inquiries from client device415 for information regarding the goods or services provided at theclient location 423, such as product information, an appointmentschedule, hours of operation, location information, contact information,and the like.

FIG. 5 shows a block diagram of an embodiment of a connection managementsystem. A message receiver interface 505 can receive a message. In someinstances, the message can be received, for example, as part of acommunication transmitted by a source device (e.g., housed separatelyfrom connection management system or within a same housing), such as anetwork device. In some instances, the communication can be part of aseries of communications or a communicate exchange, which can include aseries of messages or message exchange being routed between two devices(e.g., a network device and a client device). This message orcommunication exchange may be part of and/or may define an interactionbetween the devices. A communication channel or operative channel caninclude one or more protocols (e.g., routing protocols, task-assigningprotocols and/or addressing protocols) used to facilitate routing and acommunication exchange between the devices.

In some instances, the message can include a message generated based oninputs received at a local or remote user interface. For example, themessage can include a message that was generated based on button or keypresses or recorded speech signals. In one instance, the messageincludes an automatically generated message, such as one generated upondetecting that a network device has provided a particular input command(e.g., key sequence). The message can include an instruction or request,such as one to initiate a communication exchange.

In some instances, the message can include or be associated with anidentifier of a client. For example, the message can explicitly identifythe client (or a device associated with the client); the message caninclude or be associated with a webpage or app page associated with theclient; the message can include or be associated with a destinationaddress associated with a client; or the message can include or beassociated with an identification of an item (e.g., product) or serviceassociated with the client. To illustrate, a network device may bepresenting an app page of a particular client, which may offer an optionto transmit a communication to an agent. Upon receiving user inputcorresponding to a message, a communication may be generated to includethe message and an identifier of the particular client (e.g., a textmessage to a phone number).

A processing engine 510 may process a received communication and/ormessage. Processing can include, for example, extracting one or moreparticular data elements (e.g., a message, a client identifier, anetwork-device identifier, an account identifier, and so on). Processingcan include transforming a formatting or communication type (e.g., to becompatible with a particular device type, operating system,communication-channel type, protocol and/or network).

A message assessment engine 515 may assess the (e.g., extracted orreceived) message. The assessment can include identifying, for example,one or more categories or tags for the message. Examples of category ortag types can include (for example) topic, sentiment, complexity, andurgency. A difference between categorizing and tagging a message can bethat categories can be limited (e.g., according to a predefined set ofcategory options), while tags can be open. A topic can include, forexample, a technical issue, a use question, or a request. A category ortag can be determined, for example, based on a semantic analysis of amessage (e.g., by identifying keywords, sentence structures, repeatedwords, punctuation characters and/or non-article words); user input(e.g., having selected one or more categories); and/ormessage-associated statistics (e.g., typing speed and/or responselatency).

In some instances, message assessment engine 515 can determine a metricfor a message. A metric can include, for example, a number ofcharacters, words, capital letters, all-capital words or instances ofparticular characters or punctuation marks (e.g., exclamation points,question marks and/or periods). A metric can include a ratio, such as afraction of sentences that end with an exclamation point (or questionmark), a fraction of words that are all capitalized, and so on.

Message assessment engine 515 can store a message, message metric and/ormessage statistic in a message data store 520. Each message can also bestored in association with other data (e.g., metadata), such as dataidentifying a corresponding source device, destination device, networkdevice, terminal device, client, one or more categories, one or morestages and/or message-associated statistics). Various components of theconnection management system (e.g., message assessment engine 515 and/oran interaction management engine 525) can query message data store 520to retrieve query-responsive messages, message metrics and/or messagestatistics.

An interaction management engine 525 can determine to which device acommunication is to be routed and how the receiving and transmittingdevices are to communicate. Each of these determinations can depend, forexample, on whether a particular network device (or any network deviceassociated with a particular user) has previously communicated with aclient device or terminal device in a set of terminal devices (e.g., anyterminal device associated with the connection management system or anyterminal device associated with one or more particular clients).

In some instances, when a network device (or other network deviceassociated with a same user or profile) has previously communicated witha given terminal device, communication routing can be generally biasedtowards the same terminal device. Other factors that may influencerouting can include, for example, whether the terminal device (orcorresponding agent) is available and/or a predicted response latency ofthe terminal device. Such factors may be considered absolutely orrelative to similar metrics corresponding to other terminal devices. Are-routing rule (e.g., a client-specific or general rule) can indicatehow such factors are to be assessed and weighted to determine whether toforego agent consistency.

When a network device (or other network device associated with a sameuser or account) has not previously communicated with a given terminaldevice, a terminal-device selection can be performed based on factorssuch as, for example, an extent to which various agents' knowledge basecorresponds to a communication topic, availability of various agents ata given time and/or over a channel type, types and/or capabilities ofterminal devices (e.g., associated with the client). In one instance, arule can identify how to determine a sub-parameter to one or morefactors such as these and a weight to assign to each parameter. Bycombining (e.g., summing) weighted sub-parameters, a parameter for eachagent can be determined. A terminal device selection can then be made bycomparing terminal devices' parameters.

With regard to determining how devices are to communicate, interactionmanagement engine 525 can (for example) determine whether a clientdevice or terminal device is to respond to a communication via (forexample) SMS message, voice call, video communication, etc. Acommunication type can be selected based on, for example, acommunication-type priority list (e.g., at least partly defined by aclient or user); a type of a communication previously received from thenetwork device (e.g., so as to promote consistency), a complexity of areceived message, capabilities of the network device, and/or anavailability of one or more terminal devices. Appreciably, somecommunication types will result in real-time communication (e.g., wherefast message response is expected), while others can result inasynchronous communication (e.g., where delays (e.g., of several minutesor hours) between messages are acceptable).

Further, interaction management engine 525 can determine whether acontinuous channel between two devices should be established, used orterminated. A continuous channel can be structured so as to facilitaterouting of future communications from a network device to a specifiedterminal device or client device. This bias can persist even acrossmessage series. In some instances, a representation of a continuouschannel (e.g., identifying an agent) can be included in a presentationto be presented on a network device. In this manner, a user canunderstand that communications are to be consistently routed so as topromote efficiency.

In one instance, a parameter can be generated using one or more factorsdescribed herein and a rule (e.g., that includes a weight for each ofthe one or more factors) to determine a connection parametercorresponding to a given network device and terminal device. Theparameter may pertain to an overall match or one specific to a givencommunication or communication series. Thus, for example, the parametermay reflect a degree to which a given terminal device is predicted to besuited to respond to a network-device communication. In some instances,a parameter analysis can be used to identify each of a terminal deviceto route a given communication to and whether to establish, use orterminate a connection channel. When a parameter analysis is used toboth address a routing decision and a channel decision, a parameterrelevant to each decision may be determined in a same, similar ordifferent manner.

Thus, for example, it will be appreciated that different factors may beconsidered depending on whether the parameter is to predict a strengthof a long-term match versus one to respond to a particular messagequery. For example, in the former instance, considerations of overallschedules and time zones may be important, while in the latter instance,immediate availability may be more highly weighted. A parameter can bedetermined for a single network-device/terminal-device combination, ormultiple parameters can be determined, each characterizing a matchbetween a given network device and a different terminal device.

To illustrate, a set of three terminal devices associated with a clientmay be evaluated for potential communication routing. A parameter may begenerated for each that relates to a match for the particularcommunication. Each of the first two terminal devices may havepreviously communicated with a network device having transmitted thecommunication. An input from the network device may have indicatedpositive feedback associated with an interaction with thecommunication(s) with the first device. Thus, a past-interactsub-parameter (as calculated according to a rule) for the first, secondand third devices may be 10, 5, and 0, respectively. (Negative feedbackinputs may result in negative sub-parameters.) It may be determined thatonly the third terminal device is available. It may be predicted thatthe second terminal device will be available for responding within 15minutes, but that the first terminal device will not be available forresponding until the next day. Thus, a fast-response sub-parameter forthe first, second and third devices may be 1, 3 and 10. Finally, it maybe estimated a degree to which an agent (associated with the terminaldevice) is knowledgeable about a topic in the communication. It may bedetermined that an agent associated with the third terminal device ismore knowledgeable than those associated with the other two devices,resulting in sub-parameters of 3, 4 and 9. In this example, the ruledoes not include weighting or normalization parameters (though, in otherinstances, a rule may), resulting in parameters of 14, 11 and 19. Thus,the rule may indicate that the message is to be routed to a device withthe highest parameter, that being the third terminal device. If routingto a particular terminal device is unsuccessful, the message can berouted to a device with the next-highest parameter, and so on.

A parameter may be compared to one or more absolute or relativethresholds. For example, parameters for a set of terminal devices can becompared to each other to identify a high parameter to select a terminaldevice to which a communication can be routed. As another example, aparameter (e.g., a high parameter) can be compared to one or moreabsolute thresholds to determine whether to establish a continuouschannel with a terminal device. In some embodiments, an overallthreshold for establishing a continuous channel are higher than athreshold for consistently routing communications in a given series ofmessages. In some embodiments, this difference between the overallthreshold and threshold for determining whether to consistently routecommunication may be because a strong match is important in thecontinuous-channel context given the extended utility of the channel. Insome other embodiments, an overall threshold for using a continuouschannel is lower than a threshold for establishing a continuous channeland/or for consistently routing communications in a given series ofmessages.

Interaction management engine 525 can interact with an account engine530 in various contexts. For example, account engine 530 may look up anidentifier of a network device or terminal device in an account datastore 535 to identify an account corresponding to the device. Further,account engine 530 can maintain data about previous communicationexchanges (e.g., times, involved other device(s), channel type,resolution stage, topic(s) and/or associated client identifier),connection channels (e.g., indicating—for each of one or moreclients—whether any channels exist, a terminal device associated witheach channel, an establishment time, a usage frequency, a date of lastuse, any channel constraints and/or supported types of communication),user or agent preferences or constraints (e.g., related toterminal-device selection, response latency, terminal-deviceconsistency, agent expertise, and/or communication-type preference orconstraint), and/or user or agent characteristics (e.g., age,language(s) spoken or preferred, geographical location, interests, andso on).

Further, interaction management engine 525 can alert account engine 530of various connection-channel actions, such that account data store 535can be updated to reflect the current channel data. For example, uponestablishing a channel, interaction management engine 525 can notifyaccount engine 530 of the establishment and identify one or more of: anetwork device, a terminal device, an account and a client. Accountengine 530 can (in some instances) subsequently notify a user of thechannel's existence such that the user can be aware of the agentconsistency being availed.

Interaction management engine 525 can further interact with a clientmapping engine 540, which can map a communication to one or more clients(and/or associated brands). In some instances, a communication receivedfrom a network device itself includes an identifier corresponding to aclient (e.g., an identifier of a client, webpage, or app page). Theidentifier can be included as part of a message (e.g., which clientmapping engine 540 may detect) or included as other data in amessage-inclusive communication. Client mapping engine 540 may then lookup the identifier in a client data store 545 to retrieve additional dataabout the client and/or an identifier of the client.

In some instances, a message may not particularly correspond to anyclient. For example, a message may include a general query. Clientmapping engine 540 may, for example, perform a semantic analysis on themessage, identify one or more keywords and identify one or more clientsassociated with the keyword(s). In some instances, a single client isidentified. In some instances, multiple clients are identified. Anidentification of each client may then be presented via a network devicesuch that a user can select a client to communicate with (e.g., via anassociated terminal device).

Client data store 545 can include identifications of one or moreterminal devices (and/or agents) associated with the client. A terminalrouting engine 550 can retrieve or collect data pertaining to each ofone, more or all such terminal devices (and/or agents) so as toinfluence routing determinations. For example, terminal routing engine550 may maintain a terminal data store, which can store information suchas terminal devices' device types, operating system, communication-typecapabilities, installed applications accessories, geographic locationand/or identifiers (e.g., IP addresses). Some information can bedynamically updated. For example, information indicating whether aterminal device is available may be dynamically updated based on (forexample) a communication from a terminal device (e.g., identifyingwhether the device is asleep, being turned off/on, non-active/active, oridentifying whether input has been received within a time period); acommunication routing (e.g., indicative of whether a terminal device isinvolved in or being assigned to be part of a communication exchange);or a communication from a network device or terminal device indicatingthat a communication exchange has ended or begun.

It will be appreciated that, in various contexts, being engaged in oneor more communication exchanges does not necessarily indicate that aterminal device is not available to engage in another communicationexchange. Various factors, such as communication types (e.g., message),client-identified or user-identified target response times, and/orsystem loads (e.g., generally or with respect to a user) may influencehow many exchanges a terminal device may be involved in.

When interaction management engine 525 has identified a terminal deviceor client device to involve in a communication exchange or connectionchannel, it can notify terminal routing engine 550, which may retrieveany pertinent data about the terminal device from terminal data store555, such as a destination (e.g., IP) address, device type, protocol,etc. Processing engine 510 can then (in some instances) modify themessage-inclusive communication or generate a new communication(including the message) so as to have a particular format, comply with aparticular protocol, and so on. In some instances, a new or modifiedmessage may include additional data, such as account data correspondingto a network device, a message chronicle, and/or client data.

A message transmitter interface 560 can then transmit the communicationto the terminal device or client device. The transmission may include,for example, a wired or wireless transmission to a device housed in aseparate housing. The terminal device can include a terminal device in asame or different network (e.g., local-area network) as the connectionmanagement system. Accordingly, transmitting the communication to theterminal device can include transmitting the communication to an inter-or intra-network connection component.

FIG. 6 shows a block diagram of a network environment for dynamic andautomatic message processing during communication sessions. As shown inFIG. 6 , a user 601 may use a network device 605 to connect to a server615 over cloud network 610. Network device 605 may be any suitabledevice, such as a mobile device, that is capable of transmitting andreceiving communications in the form of text messages. In someembodiments, network device 605 may further be capable of makingtelephone calls. Cloud network 610 may be any suitable networkconfigured to support text messaging, such as a cellular network.

Server 615 may be in the form of any suitable server that is alsocapable of sending and receiving text messages. Alternatively, server615 may be in communication with another device capable of sending andreceiving text messages. In some embodiments, server 615 may include ormay be a connection management system. Server 615 may include adestination determination engine 620, a data aggregation engine 625, anda unified user profile database 630. In addition, server 615 may be incommunication with a plurality of client devices 635A-C. Although shownand described as three client devices 635A-C, it is contemplated thatserver 615 may be in communication with any number of client devices.

The destination determination engine 620 may be configured to, inconjunction with a processor (not shown), receive text messages fromnetwork device 605 over cloud network 610. Destination determinationengine 620 may determine the appropriate client device of the pluralityof client devices 635A-C to which to route the text message. Destinationdetermination engine 620 may, in some embodiments, determine that theserver 615 is the appropriate destination for the text message, based onthe content of the text message. In some embodiments, server 615 may beomitted, and text messages may be routed directly between the networkdevice 605 and one or more of the client devices 635A-C. Destinationdetermination engine 620 can further be configured to receivecommunications from the client devices 635A-C, reformat thecommunications as text messages, and route the text messages to theappropriate network device 605.

The data aggregation engine 625 may be configured to, in conjunctionwith a processor (not shown), request and/or retrieve data relative touser 601 or network device 605 from one or more of client devices635A-C. Data aggregation engine 625 may, in response to a text messagefrom network device 605, request data from client devices 635A, 635B,and 635C based on the content of the text message. For example, server615 may receive a text message from network device 605 stating, “Send meall restaurants in McPherson Square that have a 7:00 PM reservation for2 tonight.” Data aggregation engine 625 may formulate a query to clientdevices 635A and 635C, which are associated with restaurants inMcPherson Square, regarding whether they have reservations for 2 at 7:00PM. When responses are received, they can be stored in association withthe text message and an identifier of the user 601 and/or the networkdevice 605 in the unified user profile database 630. In addition, theresponses can be routed back to the network device 605.

FIG. 7 shows a block diagram of a message environment that dynamicallyswitches between a network device, a client device, and a connectionmanagement system (e.g. a server or aggregation server). A user 700 mayuse a network device 705 to send text messages to client 710. The textmessages may be sent to a landline telephone number associated with theclient 710. In some embodiments, the text messages may be sent afteruser 700 uses the network device 705 to place a phone call to client 710on the landline telephone number. Client 710 may be any goods orservices provider.

For example, user 700 may use network device 705 to transmit a textmessage 751 to client 710 stating, “Can I make an appointment?” Althoughshown as network device 705 initiating the conversation, it iscontemplated that client 710 may alternatively initiate theconversation. For example, user 700 can use network device 705 to call alandline telephone associated with client 710, and client 710 canrespond with a text message to network device 705 instead of answeringthe call.

In response, client 710 can search its scheduling system to determinewhen available appointments are, and send a text message 752 (e.g. amessage including a plurality of routing paths) stating, “Appointmentsare available Monday at 10 AM or 1 PM”. Network device 705 can respondwith a text message 753, e.g., “Monday at 10 AM”. Client 710 can send atext message 754 stating that “Monday at 10 AM is confirmed.” Client 710can then update its scheduling system.

Meanwhile, client 710 can hand off the conversation to the server 615 ofthe connection management system or a similar server. Connectionmanagement system 715 may be in operative communication with a pluralityof clients 720 and may be configured to retrieve, aggregate, and storedata relating to user 700 or network device 705. For example, connectionmanagement system 715 may send a text message 755 to network device 705asking, “See all appointments?” Network device 705 may respond with atext message 756, “Yes.” Connection management system 715 maycommunicate with clients 720 to retrieve all of the user 700'sappointments with all of the available clients 720. Connectionmanagement system 715 may transmit a text message 757 stating, “Here areall your appointments.” The text message 757 may include all of theaggregated data from the clients 720.

Although shown and described with respect to connection managementsystem 715 (e.g. a server or an aggregation server) initiating itsconversation with user 700 via network device 705, it is contemplatedthat user 700 may alternatively initiate a conversation with theconnection management system 715. In addition, although shown anddescribed as a direct connection between network device 705 and client710, it is contemplated that connection management system 715 maysimilarly interface between the network device 705 and the client 710.

The connection management system 715 can, in some embodiments, process amessage from a client device for an intent indicator data or intentdata. This can include natural language processing to select an intentvalue associated with a message from a client device to the contentmanagement system 715. For example, if client device were to text“appointments” to content management system 715 after message 753 andbefore receiving message 755, this word could be processed by contentmanagement system 715 as an intent indicator data using a machinelearning model at connection management system 715. The contentmanagement system, using the intent indicator data with the messaginghistory from client 710 could process the text “appointments” to selectan intent value from a plurality of possible intent values. Such intentvalues can includes an option to see all appointments, cancelappointments, reschedule appointments, or other such values. Using themachine learning model, the text “appointments” can be processed toselect a response associated with an intent value. In this case, themachine learning model of connection management system 715 determinesthat receiving a response message associated with an intent value ofseeing all appointments corresponds most closely with the intentindicator data “appointments”, and response with message 755 “See allappointments?” By contrast, a new message from network device 705 toconnection management system 715 “new appointment”, “cx apptmt”, “apt?”,“nxt apt”, “apt time?”, or “cng apt time?” could each result inconnection management system 715 providing a different response based ona different intent value determined from the intent indicator dataidentified from the message.

In some such examples, a connection management system can access orstore information from previous communications with a client device oraccount associated with a client device. This can include information onrouting paths provided to a client device and routing path selectionsreceived at a client from a network device. This information can bereceived at connection management system 715 from client 710, clients720, or directly from network device 705. The connection managementsystem 715 then receives a new message from the network device 705, withthe new message including intent indicator data. The intent indicatordata can be natural language text or voice information. The intentindicator data can also be metadata received as part of the new message.In some embodiments, the intent indicator data or multiple elements ofintent indicator data can include combinations of such data. Theconnection management system 715 then processes the intent indicatordata(s) using one or more machine learning models, and generates aresponse using the machine learning models. As described above, this canbe a response including one or more routing paths based on the intentindicator data and any other data available to connection managementsystem to infer an intent of a user of network device 705. A response isthen generated by connection management system 715 or a client 720managed by connection management system 715 based on the intentindicator data and previous data (e.g. a prior selection of a routingpath from communications between network device 705 and client 710). Theresponse is communicated to network device 705 using connectionmanagement system 715, including information and data to facilitatedisplay of response data on network device 705.

A connection management system can include an intent processing systemthat uses intent indicator data to update an intent associated with auser account. The intent data, as described herein, can be collected viaa communications session, history data, user profile data, or any suchsource. One example can include natural language text from a customerindicating an attempt to move money between a main account and a newflex account that has opened and that is associated with the customer.The intent processing system can evaluate this intent indicator data todetermine the issue that the customer wishes to have addressed. In thisparticular instance, the customer may be having trouble transferringfunds from one online account to another account. Based on the providedintent indicator data, the intent processing system may gather theintent indicator data with other context data to update intent values orother action values used to determine which client nodes and associatedactions or information to take in response to the intent indicator data.This can include intent or action values associated with a context thatthe request or issue is shared in, a level of urgency, a stress oranxiety level of the customer, whether there is a time pressure, and thelike. Further, the intent processing system may identify, based on theintent value selected, what the customer wishes to have resolved.

In one example, based on an identified intent value, an intentprocessing system of a connection management system identifies aselected process to in order to resolve the issue or request provided bythe customer that is associated with the identified intent value. Forexample, based on the intent indicator data from a customer, the intentprocessing system may determine that accounts have to be authorizedbefore customers can transfer funds into them. Further, the intentprocessing system may determine that authorizing an account can beperformed online. Based on the identified process, the intent processingsystem may develop a strategy for responding to the customer intent in amanner that would not only resolve the intent but do so in a manner thatleads to a positive customer experience. This can include directing thecustomer to a client customer service node, or assisting withestablishing a connection channel with such a node. The intent systemcan include machine learning processes that may include developing afoundation for the response, a desired result of the response, and/orany positive additions to give flavor to the response. The contents ofthe proposed response may be generated based on customer preferences asidentified in the customer profile via analysis of past customerinteractions with agents as part of a machine learning system. Theintent processing system may use the proposed response strategy forrouting paths to be provided to a customer for additional selections andapproval of the proposed response strategy. This can be part of anexisting communication channel, or the intent processing system canestablish a new channel for the purpose of communicating with the userand receiving approval of the strategy from the user. If the strategy isapproved, the connection management system can assist with a new channelto the appropriate client node. If the strategy is rejected, a newstrategy or a default fallback strategy, such as routing usercommunications to a help desk or help routing path, can be performed. Insome systems, any such response can be customized or set based onmachine learning algorithms that account for the particular intentindicator data and context data (e.g. user stress, user intentindicators, user history data, etc.) to provide routing data selected bythe machine learning algorithm. In addition to customized routing paths,a system can generate customized natural language communicationsassociated with the customized routing paths based on the data (e.g.intent indicator data, action data, user demographic data, etc.) Thiscan include customized language and terminology for a user (e.g. “I seethe issue”) to provide information customized to the user. Such systemsimprove the operation of the devices and communication systems byreducing the system resources used by individual users to reach anappropriate resolution, and to improve communication efficiency.

The machine learning model can use a feedback system that monitorscommunications between a network device (e.g. customer) and a service(e.g. client). Such a performance monitoring system can monitor theinteractions between the customer and client to determine whether theclient is being effective in addressing the intent of a customer. Forinstance, the performance monitoring system may evaluate any customerutterances to determine whether the intent is being fulfilled as newintent indicator data is received from a customer (e.g. monitoringfrustration levels or machine learning identified indicators that acustomer is not achieving expected results from interactions withcurrent nodes of a client system). As an illustrative example, theperformance monitoring system may determine that when the customerresponds with “Done,” the customer has acknowledged positive resultsfrom a client provided routing path, and that the customer was able toselect a routing path to achieve the customer's intent. Further, whenthe customer responds with “Thanks! That worked!” the performancemonitoring system may determine that the customer's intent has been met.This information can then be used to update machine learning models forany aspect of the system, including analysis of other user's intentindicator data to identify intent values for future system users. Forinstance, the performance monitoring system may implement aninvestigative algorithm that monitors client metrics to determine whycertain routing paths are selected with negative or positive customerresults. Based on this determination, the performance monitoring systemcan provide feedback to a machine learning algorithm to updateoperations, node selections, and routing paths to improve systemperformance. As described herein, a server system (e.g. server 615) canperform any such operations, or the operations can be part of anetworked server system with different sub-systems or engines operatingtogether to perform such operations. This can include the configurationdescribed above where server 615 may include or may be a connectionmanagement system, a destination determination engine 620, a dataaggregation engine 625, a unified user profile database 630, or anycombination of such elements. In other embodiments, other configurationsor implementations can be used.

FIG. 8 is a flowchart illustrating a method of dynamic messagingprocessing. At step 805, a message is received from a client device at anetwork device. The message may be a text message. The message mayinclude a plurality of routing paths. For example, the message mayinclude a plurality of options of service requests that may be fulfilledby the client device if requested by the network device. The message mayhave been generated by the client device in response to a landlinetelephone call made by the network device to the client device. In someembodiments, the network device may generate an initial message to theclient device via the landline telephone number. The routing path withinthe message include the various selection options that can be used orresponded to by the network device to allow a user of the network deviceto indicate a selection of a particular routing path of the plurality ofrouting paths. One routing path can involve a request for generalassistance in navigating the plurality of routing paths. Another routingpath can involve selection of a specific category of service requestsavailable from the plurality of routing paths. The plurality of routingpaths can include shared branches within a complex set of paths, suchwith nested sub-paths in a routing tree. Additionally, particular pathsin the plurality of routing paths can be associated with servers. Theseservers can be separate from the client devices, and based on theparticular information or results expected from a routing path that areassociated with services or information available from a server.Additional aspects of such server are used in steps 830 and 835 below,which can involve messaging to and from such a server.

At step 810, a selection of a routing path of the plurality of routingpaths is generated. For example, a user may use the network device toselect (e.g. using input interfaces of the network device) an optioncorrelating to a service request that may be fulfilled by the clientdevice. As described above, such a message can be received followingtermination of a previous communication channel (e.g. a telephone orvoice channel). In some embodiments, a client machine learning modelprocesses information from the previous channel and uses thisinformation to select the plurality of routing paths that are providedto a network device. This can be based, as described above, on anyinformation collected as part of the previous communication as well asany other information about a user or account associated with a networkdevice. The client device may present the plurality of routing paths asa variety of options to the network device of service requests that maybe completed by text message. In other embodiments, any such channel orcombination of channels including text messaging or other messaging canbe used for presentation of the options.

At step 815, a two-way communication session is established between thenetwork device and a node of the client device. This session can beestablished in response to selection of the routing path at the networkdevice. A client device can have multiple nodes, with certain nodesassociated with certain routing paths, so that the node for the two-waycommunication can be determined based on the selected routing path. Forexample, if the selected routing path corresponds to a service requestfor appointments, the associated node of the client device can be ascheduling engine. If the selected routing path is for information, thenode can be an assessment and response engine. The communicationsbetween the network device and the client device may includeconversations or communications regarding fulfillment of the servicerequest. In any case, the network device participates in establishingthe two-way communication as a participant in channel communicationsbetween the network device and the node.

In some examples, the communications as part of the two-waycommunication session can be processed and analyzed by one or moreengines in a system. In one embodiment, for example natural languageprocessing can be performed on a channel of communications to generatenatural language understanding or natural language interpretation data.Such data can be generated by parsing and analyzing not only the datafrom the communication channel, but other context data as well. This caninclude metadata from the channel, location or context data derived fromthe selected routing path and the context of the plurality of routingpaths. Other context data such as date, time, user or deviceidentifications or associations, and any other such data can be used aspart of natural language understanding or natural languageinterpretation data. Such data can then be used to generate a value foran intent indicator data from a limited selection of intent indicatordata within a system. For example, the plurality of routing paths can bestructured in the context of a system to provide data or take actions onbehalf of a user, with a limited number of intents associated with thedata and actions available within the system. By processing data fromthe communication channel, channel metadata, context data, previousrouting path selection data for a particular user or network device, orany combination of such data, a value associated with an expected userintent can be generated as an intent indicator data.

At step 820, termination of the two-way communication session isfacilitated. For example, the client device may fulfill the servicerequest, and no further service requests are made by the network device.The network device can the channel as part of facilitating terminationof the two-way communication session. Termination of the communicationsession may cause the client device to transmit the selected routingpath. The selected routing path may be transmitted to a connectionmanagement system or server, for example.

At step 825, data related to the selected routing path is received. Forexample, if the selected routing path relates to a reservation at onerestaurant, information about the restaurant, about other reservationsor appointments made, and the like may be received at the networkdevice.

At step 830, a new message may be transmitted. The new message may be atext message. The new message may be transmitted to the connectionmanagement system from the network device, for example. The new messagemay include an intent indicator data. In various embodiments, the intentindicator data is indicative of a desired action in a variety of ways.In some embodiments, the new message may be in natural language, (e.g.,conversational.) Natural language processing at the network device canbe used to generate a value for the intent indicator data to be sentwith the message. When the new message is received at the server, theserver may generate a response by using a machine-learning model toevaluate the selected routing path and the intent indicator data. Asdescribed above, such machine-learning can use natural language analysisin conjunction with the intent indicator data, and other context data,to generate a response to the new message from the network device.Continuing the above example, the intent indicator data could be to makeanother reservation, and additional information about the reservationcan be inferred from the machine-learning model using the value of theintent indicator data along with other data in the new message (e.g.natural language or conversational data that accompanies the intentindicator data). Information about the plurality of routing paths andthe selection of a specific routing path in the two-way communicationsession or any previous communication session with the user device canbe used to inform the machine-learning model at the client device.

At step 835, the response to the new message is received. In oneembodiment, the response is a text message. In other embodiments, othercommunication channels, including any combination of communicationchannels described herein, can be used. The response may include one ormore suggestions that correspond to the selected routing path and theintent indicator data. In some embodiments, the one or more suggestionsincludes aggregated data related to the selected routing path for aplurality of client devices, and the aggregated data may be specific tothe network device. In the above example, the response may include avariety of restaurants and a list of times available for an additionalreservation. At step 840, display of the response is facilitated. Forexample, the text message response may be displayed on the networkdevice.

The above description is given in a context of a restaurant reservationsystem. It will be apparent that aspects of such methods can apply to awide variety of other systems. One client device, for example, canprovide customer assistance for a product. The plurality of routingpaths can include routing paths for device operation assistance for afunctional device, device analysis and repair assistance for anon-functioning device, and ordering assistance for products related tothe device. Each sub-set of such routing paths can have a different nodeat a client device. When a network device selects a particular routingpath from among the provided routing paths, a channel is establishedwith a node of the client device. As described above, data that isexchanged on the channel between the network device and the node of theclient device as well as other data (e.g. context, metadata for thechannel, etc.) can be analyzed to assist with both intent indicator datavalue selection at a network device and machine-analysis at the clientdevice or server. The client device or a server can then provideadditional information to the network device after a two-waycommunication session is terminated, and the network device can displaythe response. This can include details on ordering replacement parts,directions for selecting operating modes of a device, links orcommunication channel information for interacting with third partiesabout ordering related items or where to find additional information.

FIG. 9 is a flowchart illustrating a method of dynamic messagingprocessing and data aggregation. In some implementations, process 900 ofFIG. 9 corresponds to server operations interacting with a networkdevice performing corresponding operations of process 800. In otherembodiments, process 900 can interact with a network device and clientdevices performing other similar corresponding operations for messageprocessing and data aggregation. Process 900 can be performed by aserver system, such as server 615, or any other such system. In someembodiments, process 900 can be embodied as instructions stored in anon-transitory medium that, when executed by one or more processors of asystem, cause the system to perform process 900.

Step 905 of process 900 involves generation of a message comprising aplurality of routing paths. As described herein, such routing pathsinvolve runtime decisions of a system as to where to deliver a givenmessage or event based on a certain context. The plurality of routingdecisions can involve options based on expected user preferences,overviews, or expected intent(s) associated with a user to allow a userselection of a routing path of the plurality of routing paths selectedby a user. The plurality of routing paths can be based on queries tovarious client systems or nodes of a client system that can beassociated with the expected intents for a user, or with routing pathsstructured to efficiently allow a user to provide intent indicator datafrom a user's network device to the server that matches a user's intent.Such queries to nodes or client systems can gather context or othersupporting data that the server can use (e.g. with machine learningalgorithms) to select intent values for a user based on the context dataand expected intent indicator data to be received in subsequent steps.

In step 910 of process 900, a response is received that includes arouting path selection. The server uses this routing path selection instep 915 to facilitate a two-way communication session between thenetwork device (e.g. a user's device such as a smartphone) and a node ofthe client device (e.g. a system associated with the routing pathselected from the plurality of routing paths). The server can facilitateboth the communications and the eventual termination of the two-waycommunication session in step 920 as part of connection managementsystem (e.g. connection management system 715) operations of a server.As described herein, such operations can be integrated with clientdevices and client nodes (e.g. clients 710 and 720), or can bestructured independently in other embodiments.

In step 925 of process 900, intent indicator data related to theselected routing path is received at a server system. This can be partof a message being routed via a connection management system from anetwork device to a client node, or can be data about a user or useraccount from any source associated with a current user's attempt toachieve an intent within the system. In various embodiments, intentindicator data can be gathered as part of dynamic message processing anddata aggregation not only in step 925, but throughout any communicationsor interactions using the server or associated devices that shareaggregated data with the server. This can include the response from step910, data exchanged as part of the two-way communication session as partof step 920, or any other previous steps that include data that can beaggregated for use in assisting a user's interactions with the server(e.g. to identify an intent value from intent indicator data and toprovide responses to service the intent). In step 930, this data can beprocessed to select an updated intent value in the system. In someembodiments, the intent value is a derived value from a variety ofcontext information including intent indicator data directly from auser's network device, as well as from any other source describedherein. As data is aggregated and analyzed for current interactions witha network device, a server performing process 900 can update an intentvalue for the network device using machine learning models. The intentvalue is thus a mutable indicator that changes as new information isderived (e.g. from current communications with a user's network device)over time.

In some embodiments, a system can have an initial intent value based onexpectations of a likely reason for a user to interact with a system. Asactual interactions occur, they can confirm the prior intent, or cancause the intent value to be modified. The machine learning model canthey update the intent value in the system over time without anyinteractions with a user, and that stored intent value based onaggregated data can be used to inform the initial interactions with auser's network device the next time a user is involved in acommunication channel associated with the system (e.g. managed by aconnection management system associated with the server). The dataaggregated by the system can not only be data routed by the system, butcan also include data input to the system by agents of the client, suchas live operators that can be tasked with interacting with a user atcertain points. Information about those interactions, including dataautomatically processed from the system and data input by the agents,can all be fed into a machine learning model. The data is stored in afixed fashion, and is used to update the changing intent valueassociated with a user or user account.

Further, in addition to a server receiving intent indicator data, thatdata can be processed in a variety of ways for use in determining anintent value. In some embodiments, natural language processing can beperformed using tools such as Lex and Dialogflow for text or automaticspeech recognition. Natural language understanding (NLU) or inferencesystems from such tools can then be used to structure the information inthe intent indicator data. In some implementations, such data can thenbe processed by machine learning or artificial intelligence tools (e.g.neural networks) to select an intent value from a limited set ofpossible intent values associated with a system. Such intent values fora system can be associated with particular client nodes and routings. Insome systems, the intent values for particular nodes can be subsets ofthe intent values for a system, with multiple tiers or levels ofdecisions made using machine learning analysis at each level todetermine a current intent value and update the intent value asadditional information is received from a user's network device.Additional details of intent value determination are described in U.S.patent application Ser. No. 16/601,863 titled “DYNAMIC ENDPOINTCOMMUNICATION CHANNELS” which is incorporated by reference for allpurposes.

In step 935 of process 900, a communication is generated that includessuggestions corresponding to the intent value associated with the intentindicator data and the routing path from step 910. In the context ofstep 930 described above and the analysis performed by a server system,once the intent value (e.g. an updated intent value based on currentnetwork device communications) is identified for a particular step, acommunication including suggestions (e.g. new routing paths) isgenerated for a user's network device. This communication can thenfacilitate display of options and information on a network device thateither meets a user's intent, or can be used to further communicate withthe system to attempt to achieve the user's intent associated withcurrent system interactions.

Specific details are given in the above description to provide athorough understanding of the embodiments. However, it is understoodthat the embodiments can be practiced without these specific details.For example, circuits can be shown as block diagrams in order not toobscure the embodiments in unnecessary detail. In other instances,well-known circuits, processes, algorithms, structures, and techniquescan be shown without unnecessary detail in order to avoid obscuring theembodiments.

Implementation of the techniques, blocks, steps and means describedabove can be done in various ways. For example, these techniques,blocks, steps and means can be implemented in hardware, software, or acombination thereof. For a hardware implementation, the processing unitscan be implemented within one or more application specific integratedcircuits (ASICs), digital signal processors (DSPs), digital signalprocessing devices (DSPDs), programmable logic devices (PLDs), fieldprogrammable gate arrays (FPGAs), processors, controllers,micro-controllers, microprocessors, other electronic units designed toperform the functions described above, and/or a combination thereof.

Also, it is noted that portions of the embodiments can be described as aprocess which is depicted as a flowchart, a flow diagram, a data flowdiagram, a structure diagram, or a block diagram. Although a flowchartcan describe the operations as a sequential process, many of theoperations can be performed in parallel or concurrently. In addition,the order of the operations can be re-arranged. A process is terminatedwhen its operations are completed, but could have additional steps notincluded in the figure. A process can correspond to a method, afunction, a procedure, a subroutine, a subprogram, etc. When a processcorresponds to a function, its termination corresponds to a return ofthe function to the calling function or the main function.

Furthermore, embodiments can be implemented by hardware, software,scripting languages, firmware, middleware, microcode, hardwaredescription languages, and/or any combination thereof. When implementedin software, firmware, middleware, scripting language, and/or microcode,the program code or code segments to perform the necessary tasks can bestored in a machine readable medium such as a storage medium. A codesegment or machine-executable instruction can represent a procedure, afunction, a subprogram, a program, a routine, a subroutine, a module, asoftware package, a script, a class, or any combination of instructions,data structures, and/or program statements. A code segment can becoupled to another code segment or a hardware circuit by passing and/orreceiving information, data, arguments, parameters, and/or memorycontents. Information, arguments, parameters, data, etc. can be passed,forwarded, or transmitted via any suitable means including memorysharing, message passing, ticket passing, network transmission, etc.

For a firmware and/or software implementation, the methodologies can beimplemented with modules (e.g., procedures, functions, and so on) thatperform the functions described herein. Any machine-readable mediumtangibly embodying instructions can be used in implementing themethodologies described herein. For example, software codes can bestored in a memory. Memory can be implemented within the processor orexternal to the processor. As used herein the term “memory” refers toany type of long term, short term, volatile, nonvolatile, or otherstorage medium and is not to be limited to any particular type of memoryor number of memories, or type of media upon which memory is stored.

Moreover, as disclosed herein, the term “storage medium”, “storage” or“memory” can represent one or more memories for storing data, includingread only memory (ROM), random access memory (RAM), magnetic RAM, corememory, magnetic disk storage mediums, optical storage mediums, flashmemory devices and/or other machine readable mediums for storinginformation. The term “machine-readable medium” includes, but is notlimited to portable or fixed storage devices, optical storage devices,wireless channels, and/or various other storage mediums capable ofstoring that contain or carry instruction(s) and/or data.

While the principles of the disclosure have been described above inconnection with specific apparatuses and methods, it is to be clearlyunderstood that this description is made only by way of example and notas limitation on the scope of the disclosure.

1. (canceled)
 2. A computer-implemented method, comprising: storinghistory data for a two-way communication sessions, wherein the historydata includes contact information for a plurality of communicationtypes, a message history including a selected routing path, an intentvalue associated with the message history, and a first communicationtype of the plurality of communication types associated with the messagehistory; receiving intent indicator data related to the selected routingpath and the intent value; processing the intent indicator data and thehistory data identify an updated intent value; dynamically generatingcustomized routing paths using the updated intent value and the historydata; generating a new message including the customized routing pathsthat correspond to the selected routing path and the updated intentvalue; and transmitting the new message using a second communicationtype different than the first communication type.
 3. Thecomputer-implemented method of claim 2, wherein the second communicationtype is a text message type, and wherein the new message includes aplurality of options for service requests that can be completed via textmessage.
 4. The computer-implemented method of claim 2, furthercomprising: receiving a new response including a new selected routingpath selected from the customized routing paths; and updating the intentvalue using the new selected routing path.
 5. The computer-implementedmethod of claim 2, further comprising: selecting a node associated witha cluster of terminal device based on the intent value, wherein theselected routing path is associated with the node; selecting a new nodeusing the updated intent value, wherein the customized routing paths areassociated with the new node.
 6. The computer-implemented method ofclaim 2, wherein the history data is further associated with a node thatincludes a cluster of client devices and a shared database of a clientsystem.
 7. The computer-implemented method of claim 2, furthercomprising: receiving a response to the new message; and updating amachine learning model used to generate the new message based on theresponse.
 8. The computer-implemented method of claim 2, wherein thecustomized routing paths are generated by a machine learning algorithmto include customized language and terminology, wherein the customizedlanguage and terminology are customized for the updated intent value bythe machine learning algorithm using the intent indicator data.
 9. Adevice comprising: a memory; and one or more processors coupled to thememory and configured to perform operations including: storing historydata for a two-way communication sessions, wherein the history dataincludes contact information for a plurality of communication types, amessage history including a selected routing path, an intent valueassociated with the message history, and a first communication type ofthe plurality of communication types associated with the messagehistory; receiving intent indicator data related to the selected routingpath and the intent value; processing the intent indicator data and thehistory data identify an updated intent value; dynamically generatingcustomized routing paths using the updated intent value and the historydata; generating a new message including the customized routing pathsthat correspond to the selected routing path and the updated intentvalue; and transmitting the new message using a second communicationtype different than the first communication type.
 10. The device ofclaim 9, wherein the second communication type is a text message type,and wherein the new message includes a plurality of options for servicerequests that can be completed via text message.
 11. The device of claim9, wherein the one or more processors are configured for operationsfurther comprising: receiving a new response including a new selectedrouting path selected from the customized routing paths; and updatingthe intent value using the new selected routing path.
 12. The device ofclaim 9, wherein the one or more processors are configured foroperations further comprising: selecting a node associated with acluster of terminal device based on the intent value, wherein theselected routing path is associated with the node; selecting a new nodeusing the updated intent value, wherein the customized routing paths areassociated with the new node.
 13. The device of claim 9, wherein thehistory data is further associated with a node that includes a clusterof client devices and a shared database of a client system.
 14. Thedevice of claim 9, wherein the one or more processors are configured foroperations further comprising: receiving a response to the new message;and updating a machine learning model used to generate the new messagebased on the response.
 15. The device of claim 9, wherein the customizedrouting paths are generated by a machine learning algorithm to includecustomized language and terminology, wherein the customized language andterminology are customized for the updated intent value by the machinelearning algorithm using the intent indicator data.
 16. A non-transitorycomputer-readable storage medium comprising instructions that, whenexecuted by one or more processors of a device, cause the device toperform operations comprising: storing history data for a two-waycommunication sessions, wherein the history data includes contactinformation for a plurality of communication types, a message historyincluding a selected routing path, an intent value associated with themessage history, and a first communication type of the plurality ofcommunication types associated with the message history; receivingintent indicator data related to the selected routing path and theintent value; processing the intent indicator data and the history dataidentify an updated intent value; dynamically generating customizedrouting paths using the updated intent value and the history data;generating a new message including the customized routing paths thatcorrespond to the selected routing path and the updated intent value;and transmitting the new message using a second communication typedifferent than the first communication type.
 17. The non-transitorycomputer-readable storage medium of claim 16, wherein the secondcommunication type is a text message type, and wherein the new messageincludes a plurality of options for service requests that can becompleted via text message.
 18. The non-transitory computer-readablestorage medium of claim 16, wherein the instructions configure thedevice for operations further comprising: receiving a new responseincluding a new selected routing path selected from the customizedrouting paths; and updating the intent value using the new selectedrouting path.
 19. The non-transitory computer-readable storage medium ofclaim 16, wherein the instructions configure the device for operationsfurther comprising: selecting a node associated with a cluster ofterminal device based on the intent value, wherein the selected routingpath is associated with the node; selecting a new node using the updatedintent value, wherein the customized routing paths are associated withthe new node.
 20. The non-transitory computer-readable storage medium ofclaim 16, wherein the instructions configure the device for operationsfurther comprising associated with a node that includes a cluster ofclient devices and a shared database of a client system.
 21. Thenon-transitory computer-readable storage medium of claim 16, wherein theinstructions configure the device for operations further comprising:receiving a response to the new message; and updating a machine learningmodel used to generate the new message based on the response.
 22. Thenon-transitory computer-readable storage medium of claim 16, wherein thecustomized routing paths are generated by a machine learning algorithmto include customized language and terminology, wherein the customizedlanguage and terminology are customized for the updated intent value bythe machine learning algorithm using the intent indicator data.